A client-server computing or networking environment provides a distributed application architecture that partitions tasks or work loads between service providers, often referred to as “servers”, and service requesters, often referred to as “clients”. Typically, the clients and the servers operate over a computer network on separate hardware. Individual clients and servers may perform different tasks but in a coordinated manner so that together they may accomplish specific objectives or results that are desirable to both the clients and the servers. As high-speed network connections become more prevalent, an ever-increasing number of computer-implemented applications are being run on remote server systems at locations different from those where clients controlling the applications are located. While an application is running, data relevant to the application may need to be shared between the clients and the servers involved with the application from time to time, which may be achieved by transmitting the data between the individual clients and servers over a computer network. For example, suppose an application is running on a client device associated with a user but the application data are stored in a database managed by a server system. Each time the user makes a change to an application datum at the client device, the client device needs to send an update notice to the server system so that the server system may update the corresponding application datum stored in the database accordingly. However, despite the increased bandwidth connecting the servers and the clients, it can still be undesirably slow to transmit application data between a server and a client to update to the remote server, which in turn will update an application state in a database, each time a user makes a change the application on a client computer.
The problem described in the above example is further multiplied by environments in which large numbers of users are all making many application updates at the same time, which causes many client devices to send update notices to the same server system at the same time. This particular problem is typified by multi-player online games that are run on a remote game server or a social network server. Receiving, processing, and saving each application update as the updates are received is not scalable when a server is servicing the many users of a multi-player online game.